In classical synchronous communication systems data flow is usually bidirectional and also connection oriented. Therefore, in such synchronous systems it is possible to exchange an arbitrary number of acknowledgements for maintaining and ensuring communication reliability. In other words, data being sent to a client by a server is acknowledged by the client by sending corresponding acknowledgement data back to the server over the synchronous communication system. The server is, as a consequence, able to determine whether or not the sent data has reached the client correctly and whether or not a resending of data to one or more clients needs to be initiated.
However, when the number of clients which are served by the server becomes large, such systems do not scale well and a reliable exchange of data becomes impractical: the required data transfer associated with sending the acknowledgements from each client for each data sending operation may quickly exhaust both processing resources and network bandwidth of such a communication system. Further, conventional communication systems that provide data to a plurality of clients by a server usually lack a backward channel (uplink), i.e. a communication channel from the client to the server. Those systems are usually referred to as being asynchronous communication systems.
Nevertheless, there is a need to provide reliable communication also in the case of asynchronous and/or asymmetric communication systems. One conventional concept is to store data in a so called data carousel which comprises a number of data slots storing data items. Such a carousel revolves in time, i.e. one of the slots is being identified as a current slot for a specific period of time. The data item being stored in that current slot is sent (broadcast) to all clients, before a next data slot of the data carousel is being made the current data slot. Once data items of all slots have been broadcast to the clients, revolving the data carousel is repeated from a start position. As a consequence, every data item is sent repeatedly, and a client having missed one transmission of a specific data item may receive this item at an instance of a repeated sending. In this way, it can be ensured that a maximum number of clients is reached by the server and said clients are able to receive all or a maximum number of data items. Further, new clients may join the communication system without actively interacting with the server.
On the server side, such a communication system involves running the data carousel and receiving so-called data updates that need to be incorporated into the carousel, this at a specific data slot of the carousel. Such an incorporating may include modifying, adding, or removing of the data item being stored in the specific data slot of the carousel.
On the client side, such a communication system may involve running a client side data carousel, receiving update messages from the server that correspond to one data item of the server side data carousel, and incorporating said update message into the client side carousel. All successfully received messages may form a more and more complete copy of the server side carousel on the client side.
However, there may be a substantial delay from an instance when a data update is received at the server side, the data update is being incorporated into the server side carousel, and, eventually, the server side carousel has revolved such that the data item associated with the above data update is sent to the clients. Such a delay may easily outlast a so-called time to live (TTL) of a data item which specifies a time span after which the item becomes obsolete. In addition to this, it may occur a further data update to the specific data item before it has been sent to the clients, such that the clients never become aware of the information being associated with the preceding data update. Finally, a revolution time of the carousel, which may be proportional to a total number of data slots being held by the carousel, may unacceptable long if a given quality of service is to be maintained.
Nevertheless, such delays and such inconsistencies may be unacceptable for a broad range of applications. Therefore, a more reliable and faster broadcast mechanism may be required.
In addition to the above, there is known an information server and a method of arranging carousel information from EP 1 022 909 A1. The respective teaching considers immediate insertion of particular files into the carousel.